package org.facilscrum.controller;

import org.facilscrum.beans.Sprint;
import java.sql.Date; 
import java.io.Serializable;
import java.util.List;
import java.util.ArrayList;
import java.util.*;
import java.util.HashMap;
import java.util.Map;
import org.facilscrum.persistencia.SprintPersistencia;
import org.facilscrum.interfaces.IController;
import org.facilscrum.generales.Mensajeria;


/**
*
*  @author
*/

public class SprintController implements Serializable ,IController{
private static final long serialVersionUID = 1L;
private boolean withRelation= true;
public static Exception excepcion;


private Sprint selectedsprint;
private List<Sprint> sprintlist;


@Override
public boolean isWithRelation() {
    return withRelation;
}
@Override
public  void setWithRelation(boolean withRelation) {
    this.withRelation = withRelation;
}
public SprintController(){
}

public Sprint getSelectedSprint() {
 return selectedsprint;
}

 public void setSelectedSprint(Sprint selectedsprint) {
 this.selectedsprint = selectedsprint;
}


public List<Sprint> getSprintlist() {
  return sprintlist;
}

 public void setSprintlist(List<Sprint> sprintlist) {
  this.sprintlist = sprintlist;
}
/*
*  getMensaje()
*   devuelve el mensaje encontrado...
*/
public String getMensaje() {
   String lexcepcion = excepcion.toString();
   if (lexcepcion.indexOf(":") != -1) {
       lexcepcion = lexcepcion.substring(lexcepcion.indexOf(":") + 1);
   }
  return lexcepcion;
}


/**
*
* insert()
*/

public boolean insert (Sprint sprint) {
try{
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/facilscrum/properties/mensajes");
   if (validate(sprint)) {
     if (findByPrimaryKey(sprint)==null) {
         if (!SprintPersistencia.insert(sprint)) {
                 excepcion = SprintPersistencia.excepcion;
          }
          else{
             return true;
           }
       }else{
               excepcion=new Exception(bundle.getString("msg.recordexists"));
            return false;
       }
    }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"insert()");
  }
  return false;
}


/**
*
* update()
*/

public boolean update (Sprint sprint) {
try{
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/facilscrum/properties/mensajes");
   if (validate(sprint)) {
 if (SprintPersistencia.exists(sprint)) {
     if (!SprintPersistencia.update(sprint)) {
                excepcion = SprintPersistencia.excepcion;
     }
     else{
            return true;
     }
   }else{
               excepcion=new Exception(bundle.getString("msg.nofoundprimarykey"));
            return false;
     }
  }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"update()");
  }
  return false;
}


/**
*
* update(String sqlupdate)
*/

@Override
public boolean update(String sqlupdate) {
try{
     if (!SprintPersistencia.update(sqlupdate)) {
                excepcion = SprintPersistencia.excepcion;
     }
     else{
            return true;
     }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"update()");
  }
  return false;
}


/**
*
* updatePrimaryKey()
*/

public boolean updatePrimaryKey (Sprint sprint_old , Sprint sprint) {
try{
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/facilscrum/properties/mensajes");
   if (validate(sprint_old)) {
 if (SprintPersistencia.exists(sprint_old)) {
     if (!SprintPersistencia.updatePrimaryKey(sprint_old,sprint)) {
                excepcion = SprintPersistencia.excepcion;
     }
     else{
            return true;
     }
   }else{
               excepcion=new Exception(bundle.getString("msg.nofoundprimarykey"));
            return false;
     }
  }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"updatePrimaryKey()");
  }
  return false;
}


/**
*
* delete()
*/

public boolean delete (Sprint sprint) {
try{
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/facilscrum/properties/mensajes");
 if (findByPrimaryKey(sprint)!=null) {
     if (!SprintPersistencia.delete(sprint)) {
                excepcion = SprintPersistencia.excepcion;
     }else{
            return true;
           }
   }else{
            excepcion=new Exception(bundle.getString("msg.nofoundprimarykey"));
            return false;
     }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"delete()");
  }
  return false;
}


/**
*
* delete(String sqldelete)
*/

@Override
public boolean delete(String sqldelete) {
try{
     if (!SprintPersistencia.delete(sqldelete)) {
                excepcion = SprintPersistencia.excepcion;
     }else{
            return true;
           }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"delete()");
  }
  return false;
}


/**
*
* deleteAll()
*/

@Override
public boolean deleteAll() {
try{
     if (!SprintPersistencia.deleteAll()) {
                excepcion = SprintPersistencia.excepcion;
     }
     else{
            return true;
     }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"deleteAll()");
  }
  return false;
}


/**
*
* exists()
*/



public boolean exists(Sprint sprint) {
try{
   return SprintPersistencia.exists(sprint);
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Exists()");
  }
 return false;
}


/**
*
* findPrimaryKey()
*/



public Sprint findByPrimaryKey(Sprint sprint) {
try{
    this.selectedsprint = SprintPersistencia.findByPrimaryKey(sprint);
    return selectedsprint;
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByPrimaryKey()");
  }
 return null;
}


/**
*
* findByIdsprint()
*/

public boolean findByIdsprint(Sprint sprint) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.findByIdsprint(sprint,withRelation) ;
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByIdsprint()");
    }
  return false;
  }


/**
*
* findByIdproyecto()
*/

public boolean findByIdproyecto(Sprint sprint) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.findByIdproyecto(sprint,withRelation) ;
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByIdproyecto()");
    }
  return false;
  }


/**
*
* findByNombre()
*/

public boolean findByNombre(Sprint sprint) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.findByNombre(sprint,withRelation) ;
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByNombre()");
    }
  return false;
  }


/**
*
* findByObjetivo()
*/

public boolean findByObjetivo(Sprint sprint) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.findByObjetivo(sprint,withRelation) ;
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByObjetivo()");
    }
  return false;
  }


/**
*
* findByVelocidadestimada()
*/

public boolean findByVelocidadestimada(Sprint sprint) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.findByVelocidadestimada(sprint,withRelation) ;
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByVelocidadestimada()");
    }
  return false;
  }


/**
*
* findByFechainicio()
*/

public boolean findByFechainicio(Sprint sprint) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.findByFechainicio(sprint,withRelation) ;
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByFechainicio()");
    }
  return false;
  }


/**
*
* findByFechaterminacion()
*/

public boolean findByFechaterminacion(Sprint sprint) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.findByFechaterminacion(sprint,withRelation) ;
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByFechaterminacion()");
    }
  return false;
  }


/**
*
* findByFechademo()
*/

public boolean findByFechademo(Sprint sprint) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.findByFechademo(sprint,withRelation) ;
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByFechademo()");
    }
  return false;
  }


/**
*
* findByHorademo()
*/

public boolean findByHorademo(Sprint sprint) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.findByHorademo(sprint,withRelation) ;
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByHorademo()");
    }
  return false;
  }


/**
*
* findByFechameeting()
*/

public boolean findByFechameeting(Sprint sprint) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.findByFechameeting(sprint,withRelation) ;
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByFechameeting()");
    }
  return false;
  }


/**
*
* findByComentariosmeeting()
*/

public boolean findByComentariosmeeting(Sprint sprint) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.findByComentariosmeeting(sprint,withRelation) ;
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByComentariosmeeting()");
    }
  return false;
  }


/**
*
* findByAsistentesmeeting()
*/

public boolean findByAsistentesmeeting(Sprint sprint) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.findByAsistentesmeeting(sprint,withRelation) ;
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByAsistentesmeeting()");
    }
  return false;
  }


/**
*
* findByFecharetrospectiva()
*/

public boolean findByFecharetrospectiva(Sprint sprint) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.findByFecharetrospectiva(sprint,withRelation) ;
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByFecharetrospectiva()");
    }
  return false;
  }


/**
*
* findByBuenoretrospectiva()
*/

public boolean findByBuenoretrospectiva(Sprint sprint) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.findByBuenoretrospectiva(sprint,withRelation) ;
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByBuenoretrospectiva()");
    }
  return false;
  }


/**
*
* findByMaloretrospectiva()
*/

public boolean findByMaloretrospectiva(Sprint sprint) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.findByMaloretrospectiva(sprint,withRelation) ;
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByMaloretrospectiva()");
    }
  return false;
  }


/**
*
* findByMejorarretrospectiva()
*/

public boolean findByMejorarretrospectiva(Sprint sprint) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.findByMejorarretrospectiva(sprint,withRelation) ;
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByMejorarretrospectiva()");
    }
  return false;
  }


/**
*
* findByPuntosasignados()
*/

public boolean findByPuntosasignados(Sprint sprint) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.findByPuntosasignados(sprint,withRelation) ;
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByPuntosasignados()");
    }
  return false;
  }


/**
*
* findByVelocidadreal()
*/

public boolean findByVelocidadreal(Sprint sprint) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.findByVelocidadreal(sprint,withRelation) ;
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByVelocidadreal()");
    }
  return false;
  }


/**
*
* findByAbierto()
*/

public boolean findByAbierto(Sprint sprint) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.findByAbierto(sprint,withRelation) ;
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByAbierto()");
    }
  return false;
  }


/**
*
* locateByParameters()
*/

public boolean locateByParameters(Map parametros) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.locateByParameters(parametros,withRelation);
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
       Mensajeria.MensajeError( ex ,"locateByParameters()");
  }
  return false;
}


/**
*
* Func(String funcion, String campo)
*/

@Override
public Double func(String funcion, String campo) {
  try{
     return SprintPersistencia.func(funcion,campo);
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"func()");
  }
  return 0.0;
}


/**
*
* Double func(String funcion, String campo, String where)
*/

@Override
public Double func(String funcion, String campo,String where) {
  try{
     return SprintPersistencia.func(funcion,campo,where);
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Func()");
  }
  return 0.0;
}


/**
*
* count()
*/

@Override
public Integer count() {
  try{
     int x =SprintPersistencia.count();
    return x;
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"count()");
  }
 return 0;
}


/**
*
* count(String sql)
*/

@Override
public Integer count(String sqlquery) {
  try{
     int x =SprintPersistencia.count(sqlquery);
    return x;
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"count()");
  }
 return 0;
}


/**
*
* query()
*/

@Override
public boolean query(String query) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.query(query,withRelation);
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"query()");
  }
  return false;
}


/**
*
* orderby()
*/

@Override
public boolean orderby(String query) {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     sprintlist = SprintPersistencia.orderby(query,withRelation);
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"orderby()");
  }
  return false;
}


/**
*
* selectAll()
*/

@Override


public boolean selectAll() {
  try{
     if(sprintlist != null){
        sprintlist.removeAll(sprintlist);
     }
     Map<String, String> parametros = new HashMap<>();
     sprintlist = SprintPersistencia.getListRecords(parametros,withRelation);
     if (sprintlist== null) {
                excepcion = SprintPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
       Mensajeria.MensajeError( ex ,"SelectAll()");
  }
            return false;
}


public boolean validate(Sprint sprint) {
 try{
   java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/facilscrum/properties/mensajes");

if (sprint.getIdproyecto() == null || sprint.getIdproyecto().toString().equals("")){
   excepcion=new Exception(bundle.getString("idproyecto")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (sprint.getNombre() == null || sprint.getNombre().toString().equals("")){
   excepcion=new Exception(bundle.getString("nombre")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (sprint.getObjetivo() == null || sprint.getObjetivo().toString().equals("")){
   excepcion=new Exception(bundle.getString("objetivo")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (sprint.getVelocidadestimada() == null || sprint.getVelocidadestimada().toString().equals("")){
   excepcion=new Exception(bundle.getString("velocidadestimada")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (sprint.getFechainicio() == null || sprint.getFechainicio().toString().equals("")){
   excepcion=new Exception(bundle.getString("fechainicio")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (sprint.getFechaterminacion() == null || sprint.getFechaterminacion().toString().equals("")){
   excepcion=new Exception(bundle.getString("fechaterminacion")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (sprint.getFechademo() == null || sprint.getFechademo().toString().equals("")){
   excepcion=new Exception(bundle.getString("fechademo")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (sprint.getHorademo() == null || sprint.getHorademo().toString().equals("")){
   excepcion=new Exception(bundle.getString("horademo")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (sprint.getAbierto() == null || sprint.getAbierto().toString().equals("")){
   excepcion=new Exception(bundle.getString("abierto")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
   return true;
 }catch(Exception ex){
   Mensajeria.MensajeError(ex, "validate()");
  return false;

  }
}


}
